package com.accloud.service;

import com.accloud.cloudservice.PayloadCallback;
import com.accloud.cloudservice.VoidCallback;
import java.util.List;

public interface ACBindMgr {
    void bindDevice(String str, String str2, String str3, PayloadCallback<ACUserDevice> payloadCallback);

    void bindDeviceWithShareCode(String str, PayloadCallback<ACUserDevice> payloadCallback);

    void bindDeviceWithUser(String str, long j, String str2, VoidCallback voidCallback);

    void changeDevice(String str, String str2, long j, VoidCallback voidCallback);

    void changeName(String str, long j, String str2, VoidCallback voidCallback);

    void changeOwner(String str, long j, long j2, VoidCallback voidCallback);

    void fetchShareCode(long j, int i, PayloadCallback<String> payloadCallback);

    void getDeviceCount(int i, PayloadCallback<Integer> payloadCallback);

    void getDeviceProfile(String str, long j, PayloadCallback<ACObject> payloadCallback);

    void getDevices(int i, int i2, int i3, PayloadCallback<List<ACUserDevice>> payloadCallback);

    void getShareCode(String str, long j, int i, PayloadCallback<String> payloadCallback);

    void getShareCode(String str, long j, PayloadCallback<String> payloadCallback);

    void isDeviceBound(String str, PayloadCallback<Boolean> payloadCallback);

    void isDeviceBound(String str, String str2, PayloadCallback<Boolean> payloadCallback);

    boolean isDeviceLocalOnline(String str);

    void isDeviceOnline(String str, long j, String str2, PayloadCallback<Boolean> payloadCallback);

    void listDevices(PayloadCallback<List<ACUserDevice>> payloadCallback);

    void listDevicesWithStatus(PayloadCallback<List<ACUserDevice>> payloadCallback);

    void listUsers(String str, long j, PayloadCallback<List<ACDeviceUser>> payloadCallback);

    void refreshShareCode(long j, int i, PayloadCallback<String> payloadCallback);

    void resetDeviceToken(String str, long j, VoidCallback voidCallback);

    void sendToDeviceWithOption(String str, String str2, ACDeviceMsg aCDeviceMsg, int i, PayloadCallback<ACDeviceMsg> payloadCallback);

    void setDeviceProfile(String str, long j, ACObject aCObject, VoidCallback voidCallback);

    void unbindDevice(String str, long j, VoidCallback voidCallback);

    void unbindDeviceWithUser(String str, long j, long j2, VoidCallback voidCallback);
}
